{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "5847ef54-d33e-4bc3-924e-620827da1c93",
   "metadata": {},
   "source": [
    "# 第3章 PyTorch的基本概念"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2e10ca26-9504-4090-8a87-cba1a96b0bbf",
   "metadata": {},
   "source": [
    "## 3.1　张量及其创建"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "96e67299-9781-4a40-b7d8-215dfde7af19",
   "metadata": {},
   "source": [
    "### 3.1.2　数组直接创建张量"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0f95885c-5bad-44db-9b45-dab06ee5f2ff",
   "metadata": {},
   "source": [
    "#### 方法1：使用torch.tensor()函数从数组直接创建张量，并查看其数据类型，案例如下："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "07df037b-e561-4ad4-a03a-a030ab2b789a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ndarray的数据类型： float64\n"
     ]
    }
   ],
   "source": [
    "import torch\n",
    "import numpy as np\n",
    "arr=np.ones((3,3))\n",
    "print(\"ndarray的数据类型：\",arr.dtype)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "fbe0e3a9-7491-4e9b-97f0-b5b47850e252",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([[1., 1., 1.],\n",
      "        [1., 1., 1.],\n",
      "        [1., 1., 1.]], dtype=torch.float64)\n",
      "tensor([[1., 1., 1.],\n",
      "        [1., 1., 1.],\n",
      "        [1., 1., 1.]], dtype=torch.float64)\n"
     ]
    }
   ],
   "source": [
    "t1=torch.tensor(arr)\n",
    "t2=torch.tensor(arr,device=\"cpu\")\n",
    "print(t1)\n",
    "print(t2)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f154b467-e20b-4244-83a3-ddc051fa5edf",
   "metadata": {},
   "source": [
    "#### 方法2：使用torch.from_numpy()函数从NumPy创建张量。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "59ac208d-cd31-425c-a111-c735d339c5cc",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "原始数组和张量\n",
      "[[1 2 3]\n",
      " [4 5 6]]\n",
      "tensor([[1, 2, 3],\n",
      "        [4, 5, 6]], dtype=torch.int32)\n"
     ]
    }
   ],
   "source": [
    "import torch\n",
    "import numpy as np\n",
    "arr=np.array([[1,2,3],[4,5,6]])\n",
    "t=torch.from_numpy(arr)\n",
    "\n",
    "print(\"原始数组和张量\")\n",
    "print(arr)\n",
    "print(t)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "c9a1b6fe-77a6-44f8-a5f0-bb128f5e999c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "修改张量的数值\n",
      "[[ 1  2 -1]\n",
      " [ 4  5  6]]\n",
      "tensor([[ 1,  2, -1],\n",
      "        [ 4,  5,  6]], dtype=torch.int32)\n"
     ]
    }
   ],
   "source": [
    "print(\"修改张量的数值\")\n",
    "t[0,2]=-1\n",
    "print(arr)\n",
    "print(t)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "149a85ba-853c-4cae-ba78-be05806d922f",
   "metadata": {},
   "source": [
    "### 3.1.3　概率分布创建张量"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "de391c30-0d95-40d9-ac48-f765e511a4d5",
   "metadata": {},
   "source": [
    "### 3.1.3　概率分布创建张量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "87608c2d-4124-4394-8e02-8f4bcb932c28",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "mean:tensor([1., 2., 3., 4.])\n",
      "std:tensor([1., 2., 3., 4.])\n",
      "tensor([ 1.6511,  2.8036, -0.4278,  4.4323])\n"
     ]
    }
   ],
   "source": [
    "import torch\n",
    "mean=torch.arange(1,5,dtype=torch.float)\n",
    "std=torch.arange(1,5,dtype=torch.float)\n",
    "t=torch.normal(mean,std)\n",
    "print(\"mean:{}\\nstd:{}\\n{}\".format(mean,std,t))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ec371a69-fc5f-4cc3-850c-4bdfac4a99aa",
   "metadata": {},
   "source": [
    "### 2．从标准正态分布中抽取随机数创建张量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "ca4b734c-25ce-483d-9fdb-75020e197e6f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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NLh8MOy/jz/+WDfddJNSU1Nls9n07rvv1nveGKPp06ere/fuioqKUnZ2tnbu3HnO1/X3s9wcIR9G3G63vv3tb+vee+9t8HmPx6MbbrhBbrdbK1as0BtvvKHXX39d06dPb/J1b7/9dm3evFmLFi3Sf/7zH3388ce6++6722IT/DJmzBgdOXKk3u3OO+9U7969NWrUqCbXveuuu+qt98wzz7RT1f574okn6tX6ox/9qMnlH3jgAb3//vt655139NFHH+nw4cP6xje+0U7V+mfbtm3yer36wx/+oM2bN+v555/XnDlz9Mgjj5xz3UDdh3PnztXUqVM1Y8YMrVu3TsOGDVNOTo6OHj3a4PIrVqzQ+PHjNXnyZK1fv1633nqrbr31Vn3xxRftXHnzfPTRR5oyZYo+++wzLVq0SNXV1br22mtVVlbW5HpxcXH19tf+/fvbqWL/XXTRRfVqXb58eaPLBtv+k6TVq1fX275FixZJkr797W83uk6g77+ysjINGzZMs2fPbvD5Z555Rr/97W81Z84crVy5Up06dVJOTo4qKysbfU1/P8vNZjqI1157zcTHx5/VPn/+fGO3201+fr6v7fe//72Ji4szVVVVDb7Wli1bjCSzevVqX9sHH3xgbDabOXToUKvXfj7cbrfp1q2beeKJJ5pc7qqrrjL33Xdf+xR1nnr16mWef/75Zi9fXFxswsPDzTvvvONr27p1q5FkcnNz26DC1vfMM8+Y3r17N7lMIO/D0aNHmylTpvgeezwek5qaambOnNng8t/5znfMDTfcUK8tMzPT/OAHP2jTOlvL0aNHjSTz0UcfNbpMY3+TAtGMGTPMsGHDmr18sO8/Y4y57777TN++fY3X623w+WDaf8YYI8n861//8j32er0mJSXF/PrXv/a1FRcXG6fTaf7+9783+jr+fpabK+SPjJxLbm6uhgwZouTkZF9bTk6OXC6XNm/e3Og6CQkJ9Y40ZGdny263a+XKlW1esz/+/e9/6/jx45o0adI5l/3b3/6mxMREDR48WNOmTVN5eXk7VNgyTz31lLp27aoRI0bo17/+dZPdamvXrlV1dbWys7N9bQMHDlTPnj2Vm5vbHuWet5KSEnXp0uWcywXiPnS73Vq7dm2937/dbld2dnajv//c3Nx6y0u1n8tg2l+SzrnPTp48qV69eik9PV233HJLo39zAsHOnTuVmpqqPn366Pbbb1deXl6jywb7/nO73frrX/+q73//+01enDWY9t+X7d27V/n5+fX2U3x8vDIzMxvdTy35LDdXUFwory3l5+fXCyKSfI/z8/MbXScpKaleW1hYmLp06dLoOlZ55ZVXlJOTc84LDd52223q1auXUlNTtWnTJj300EPavn27/vnPf7ZTpc334x//WBdffLG6dOmiFStWaNq0aTpy5Iiee+65BpfPz89XRETEWWOGkpOTA25/NWTXrl168cUX9eyzzza5XKDuw8LCQnk8ngY/Z9u2bWtwncY+l8Gwv7xer+6//35ddtllGjx4cKPLDRgwQK+++qqGDh2qkpISPfvssxozZow2b97cphcGbYnMzEy9/vrrGjBggI4cOaLHH39cV1xxhb744gvFxsaetXww7z9Jevfdd1VcXKzvfe97jS4TTPuvIaf2hT/7qSWf5eYKyjDy8MMP6+mnn25yma1bt55zgFUwack2Hzx4UAsXLtTbb799ztc/c7zLkCFD1L17d11zzTXavXu3+vbt2/LCm8mf7Zs6daqvbejQoYqIiNAPfvADzZw5M6CnaW7JPjx06JCuu+46ffvb39Zdd93V5LpW70PUmjJlir744osmx1RIUlZWlrKysnyPx4wZo0GDBukPf/iDfvGLX7R1mX4ZO3as7/7QoUOVmZmpXr166e2339bkyZMtrKxtvPLKKxo7dqxSU1MbXSaY9l8wCMow8uCDDzaZWCWpT58+zXqtlJSUs0YCnzrLIiUlpdF1vjxYp6amRkVFRY2uc75ass2vvfaaunbtqptvvtnv98vMzJRU+7/y9vgiO599mpmZqZqaGu3bt08DBgw46/mUlBS53W4VFxfXOzpSUFDQZvurIf5u4+HDh3X11VdrzJgx+uMf/+j3+7X3PmxMYmKiHA7HWWcvNfX7T0lJ8Wv5QPHDH/7QN6Dd3/8dh4eHa8SIEdq1a1cbVdd6EhISdMEFFzRaa7DuP0nav3+/Fi9e7PcRxWDaf9Lp77eCggJ1797d115QUKDhw4c3uE5LPsvNdl4jToLIuQawFhQU+Nr+8Ic/mLi4OFNZWdnga50awLpmzRpf28KFCwNqAKvX6zW9e/c2Dz74YIvWX758uZFkNm7c2MqVtb6//vWvxm63m6KiogafPzWA9R//+Ievbdu2bQE9gPXgwYOmf//+5rvf/a6pqalp0WsE0j4cPXq0+eEPf+h77PF4TFpaWpMDWG+88cZ6bVlZWQE7ANLr9ZopU6aY1NRUs2PHjha9Rk1NjRkwYIB54IEHWrm61ldaWmo6d+5sXnjhhQafD7b9d6YZM2aYlJQUU11d7dd6gb7/1MgA1meffdbXVlJS0qwBrP58lptd33mtHQT2799v1q9fbx5//HETExNj1q9fb9avX29KS0uNMbX/gAYPHmyuvfZas2HDBrNgwQLTrVs3M23aNN9rrFy50gwYMMAcPHjQ13bdddeZESNGmJUrV5rly5eb/v37m/Hjx7f79jVm8eLFRpLZunXrWc8dPHjQDBgwwKxcudIYY8yuXbvME088YdasWWP27t1r3nvvPdOnTx9z5ZVXtnfZ57RixQrz/PPPmw0bNpjdu3ebv/71r6Zbt25mwoQJvmW+vH3GGHPPPfeYnj17mg8//NCsWbPGZGVlmaysLCs24ZwOHjxo+vXrZ6655hpz8OBBc+TIEd/tzGWCaR++9dZbxul0mtdff91s2bLF3H333SYhIcF3Ftsdd9xhHn74Yd/yn376qQkLCzPPPvus2bp1q5kxY4YJDw83n3/+uVWb0KR7773XxMfHm2XLltXbX+Xl5b5lvryNjz/+uFm4cKHZvXu3Wbt2rfnud79rIiMjzebNm63YhCY9+OCDZtmyZWbv3r3m008/NdnZ2SYxMdEcPXrUGBP8++8Uj8djevbsaR566KGzngvG/VdaWur7zpNknnvuObN+/Xqzf/9+Y4wxTz31lElISDDvvfee2bRpk7nllltM7969TUVFhe81vvrVr5oXX3zR9/hcn+WWCvkwMnHiRCPprNvSpUt9y+zbt8+MHTvWREVFmcTERPPggw/WS8VLly41kszevXt9bcePHzfjx483MTExJi4uzkyaNMkXcALB+PHjzZgxYxp8bu/evfV+B3l5eebKK680Xbp0MU6n0/Tr18/89Kc/NSUlJe1YcfOsXbvWZGZmmvj4eBMZGWkGDRpknnzyyXpHsb68fcYYU1FRYf73f//XdO7c2URHR5uvf/3r9b7cA8lrr73W4L/ZMw9kBuM+fPHFF03Pnj1NRESEGT16tPnss898z1111VVm4sSJ9ZZ/++23zQUXXGAiIiLMRRddZObNm9fOFTdfY/vrtdde8y3z5W28//77fb+P5ORkc/3115t169a1f/HNMG7cONO9e3cTERFh0tLSzLhx48yuXbt8zwf7/jtl4cKFRpLZvn37Wc8F4/479d315dup7fB6veaxxx4zycnJxul0mmuuueasbe/Vq5eZMWNGvbamPsstZTPGmPPr6AEAAGi5Dj/PCAAAsBZhBAAAWIowAgAALEUYAQAAliKMAAAASxFGAACApQgjAADAUoQRAABgKcIIAACwFGEEAABYijACAAAsRRgBAACW+v84bpZZqD/2QAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "def sigmoid(x):\n",
    "    return 1./(1.+np.exp(-x))\n",
    "def plot_sigmoid():\n",
    "    x=np.arange(-10,10,0.1)\n",
    "    y=sigmoid(x)\n",
    "    plt.plot(x,y)\n",
    "    plt.show()\n",
    "if __name__==\"__main__\":\n",
    "    plot_sigmoid()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1b5ccc81-5950-45da-882d-7ceba72e60b9",
   "metadata": {},
   "source": [
    "### 3.2.3　Tanh激活函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "8daaedb6-be8b-4a01-a85a-b1be8eee9ec4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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U0wmk2bPnt1se384fp988ol+/OMfKzk5WSaTSW+++abb+4ZhaMGCBUpKSlJkZKQyMjK0a9eus+63vd/LbUXAaafa2lrdcMMNuv3225t9v6GhQRMnTlRtba3Wr1+v5557TqtWrdKCBQta3e/UqVO1bds2rV27Vv/85z/1ySefaNasWZ7oQruMGzdORUVFbsutt96q1NRUjRkzptVtZ86c6bbdY4891klVn5sHH3zQrd4777yz1fZ333233n77bb366qv6+OOPdejQIf3nf/5nJ1Xbdjt27JDT6dQzzzyjbdu26Q9/+IOWL1+u3/72t2fd1leP4csvv6zs7GwtXLhQmzZt0ogRI5SZmamSkpJm269fv1433nijZsyYoc2bN2vSpEmaNGmStm7d2smVt83HH3+s2bNn6/PPP9fatWtVV1enCRMmqKqqqtXtrFar2/Hat29fJ1V8bi666CK3ej/99NMW2/rbMfziiy/c+rZ27VpJ0g033NDiNr5+/KqqqjRixAgtW7as2fcfe+wxPfXUU1q+fLk2bNigLl26KDMzUydOnGhxn+39Xm4XA+fk2WefNaKjo89Y/+677xpms9mw2+2udX/+858Nq9Vq1NTUNLuvb7/91pBkfPHFF651//d//2eYTCbj4MGDHV77+aitrTUSEhKMBx98sNV2V1xxhfHrX/+6c4rqAL179zb+8Ic/tLl9WVmZERYWZrz66quuddu3bzckGXl5eR6osGM99thjRmpqaqttfPkYjh071pg9e7brdUNDg5GcnGwsWbKk2fY///nPjYkTJ7qtS0tLM371q195tM6OUlJSYkgyPv744xbbtPQzyVctXLjQGDFiRJvb+/sx/PWvf23069fPcDqdzb7vb8dPkvHGG2+4XjudTsNmsxmPP/64a11ZWZlhsViMv//97y3up73fy+3BCE4Hy8vL07Bhw5SYmOhal5mZKYfDoW3btrW4TUxMjNuISEZGhsxmszZs2ODxmtvjrbfe0tGjRzV9+vSztl29erXi4+M1dOhQ5eTkqLq6uhMqPHePPPKIunXrplGjRunxxx9v9bRifn6+6urqlJGR4Vo3aNAg9erVS3l5eZ1R7nkpLy9XXFzcWdv54jGsra1Vfn6+29+92WxWRkZGi3/3eXl5bu2lxu9LfzhWUuPxknTWY1ZZWanevXsrJSVF1113XYs/c3zF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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "def tanh(x):\n",
    "    return (np.exp(x)-np.exp(-x))/(np.exp(x)+np.exp(-x))\n",
    "def plot_tanh():\n",
    "    x=np.arange(-10,10,0.1)\n",
    "    y=tanh(x)\n",
    "    plt.plot(x,y)\n",
    "    plt.show()\n",
    "if __name__==\"__main__\":\n",
    "    plot_tanh()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "61f7dcc9-df2a-4113-ad9d-e070f3f4da91",
   "metadata": {},
   "source": [
    "### 3.2.4　ReLU激活函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "c0626600-dcb4-44c2-8238-099de79f199d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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O8IHAABekn+66EzdkthENwX4xcQqQvgAAMBL3pqToS3ZpXXLLcFXt9gRPgAA8IK1e4/p7fnBXbfYET4AAPAw6payCB8AAHjYm3O2aWv28aCvW+wIHwAAeNDavcf0zvwdkqSXgrxusSN8AADgIc51S//EJuob5HWLHeEDAAAPsdctDesE13e3nA/hAwAADzi7bqlfO8zHE/kPwgcAAG7mXLfc3DlON3akbnFG+AAAwM3e+OlM3TKas1vOQfgAAMCN1uw5pndKLyb20sBO1C3lIHwAAOAmpwpL6pZiI93SOU43doz19Uh+ifABAICbvDFnm7YdpG45H7eHj6KiIj333HNKSEhQzZo11bp1a7344osyxrh7UwAA+I1f9xzTu051Sz3qlgpVd/cTvvLKK3r77bc1ZcoUdejQQStWrNDQoUMVHR2txx57zN2bAwDA56hbXOP28LFo0SINGDBA/fr1kyS1bNlSn376qZYtW+buTQEA4BfemLNNGQePq2GdcOqWKnB77dKjRw/NmTNHW7dulSStWbNGCxcuVN++fctdPz8/XzabrcwNAACrcK5bXr61I3VLFbj9nY+RI0fKZrOpXbt2qlatmoqKivTyyy9r8ODB5a6fnp6u0aNHu3sMAAA8zrluGXB5nPp0oG6pCre/8/HFF1/o448/1ieffKJVq1ZpypQpmjBhgqZMmVLu+qmpqcrJyXHc9uzZ4+6RAADwiNd/OlO3PH8zdUtVuf2djxEjRmjkyJG66667JEmdOnXSrl27lJ6eriFDhpyzfnh4uMLD+XphAIC1rN79m95bUFK3jKFucYnb3/k4ceKEQkPLPm21atVUXFzs7k0BAOATznXLwMvjdAN1i0vc/s7HzTffrJdfflnNmzdXhw4dtHr1ar366qu655573L0pAAB84rWftmr7oTw1igzX85zd4jK3h4+33npLzz33nB5++GEdPHhQcXFxeuCBBzRq1Ch3bwoAAK9btfs3vb9ghyRpzK2dVLcWdYurQoyfXXrUZrMpOjpaOTk5ioqK8vU4AAA4nCosUr83/6vth/J0a5emeu3Oy309kt9w5e833+0CAEAVvTb7TN2SdvNlvh7HsggfAABUwardv+n9/1K3uAPhAwCA83A+u+XWLk31h8tifD2SpRE+AAA4j9dmb9UO6ha3IXwAAFAJ57olnbrFLQgfAABUwLlu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On78uAf2wDXz5s1TSEhIubfly5dX+LjrrrvunPUffPBBL07umpYtW54z79ixYyt9zKlTp5SSkqIGDRqoTp06uv3225Wdne2liV2zc+dO3XvvvUpISFDNmjXVunVrpaWlqaCgoNLH+fNxnDhxolq2bKmIiAglJSVp2bJlla4/depUtWvXThEREerUqZN++OEHL03quvT0dF111VWKjIxU48aNNXDgQG3ZsqXSx0yePPmcYxUREeGliV33/PPPnzNvu3btKn2MlY6hVP6/KyEhIUpJSSl3fX8/hgsWLNDNN9+suLg4hYSEaNq0aWXuN8Zo1KhRatKkiWrWrKnk5GRt27btvM/r6mu5qgIqfBQUFGjQoEF66KGHyr2/qKhI/fr1U0FBgRYtWqQpU6Zo8uTJGjVqVKXPO3jwYG3YsEGzZ8/WjBkztGDBAt1///2e2AWX9OjRQwcOHChz+/vf/66EhAR17dq10sfed999ZR43btw4L019YV544YUy8z766KOVrv/EE0/ou+++09SpUzV//nzt379ft912m5emdc3mzZtVXFysd999Vxs2bNBrr72md955R88888x5H+uPx/Hzzz/X8OHDlZaWplWrVqlz587q06ePDh48WO76ixYt0t133617771Xq1ev1sCBAzVw4ECtX7/ey5NXzfz585WSkqIlS5Zo9uzZKiws1A033KC8vLxKHxcVFVXmWO3atctLE1+YDh06lJl34cKFFa5rtWMoScuXLy+zf7Nnz5YkDRo0qMLH+PMxzMvLU+fOnTVx4sRy7x83bpzefPNNvfPOO1q6dKlq166tPn366NSpUxU+p6uvZZeYADRp0iQTHR19zvIffvjBhIaGmqysLMeyt99+20RFRZn8/Pxyn2vjxo1Gklm+fLlj2Y8//mhCQkLMvn373D77xSgoKDCNGjUyL7zwQqXrXXvttebxxx/3zlBu0KJFC/Paa69Vef1jx46ZGjVqmKlTpzqWbdq0yUgyixcv9sCE7jdu3DiTkJBQ6Tr+ehy7detmUlJSHD8XFRWZuLg4k56eXu76f/zjH02/fv3KLEtKSjIPPPCAR+d0l4MHDxpJZv78+RWuU9G/Sf4qLS3NdO7cucrrW/0YGmPM448/blq3bm2Ki4vLvd9Kx1CS+eabbxw/FxcXm9jYWDN+/HjHsmPHjpnw8HDz6aefVvg8rr6WXRFQ73ycz+LFi9WpUyfFxMQ4lvXp00c2m00bNmyo8DF169Yt805CcnKyQkNDtXTpUo/P7Ipvv/1WR44c0dChQ8+77scff6yGDRuqY8eOSk1N1YkTJ7ww4YUbO3asGjRooC5dumj8+PGVVmUrV65UYWGhkpOTHcvatWun5s2ba/Hixd4Y96Ll5OSofv36513P345jQUGBVq5cWea/fWhoqJKTkyv8b7948eIy60slr0srHStJ5z1ex48fV4sWLRQfH68BAwZU+G+Ov9i2bZvi4uLUqlUrDR48WLt3765wXasfw4KCAn300Ue65557Kv1CU6sdQ7vMzExlZWWVOUbR0dFKSkqq8BhdyGvZFX73xXKelJWVVSZ4SHL8nJWVVeFjGjduXGZZ9erVVb9+/Qof4ysffPCB+vTpc94v5vvTn/6kFi1aKC4uTmvXrtXTTz+tLVu26Ouvv/bSpK557LHHdMUVV6h+/fpatGiRUlNTdeDAAb366qvlrp+VlaWwsLBzPvcTExPjd8esPBkZGXrrrbc0YcKEStfzx+N4+PBhFRUVlfs627x5c7mPqeh1aYVjVVxcrGHDhqlnz57q2LFjheu1bdtWH374oRITE5WTk6MJEyaoR48e2rBhg8e/SPNCJCUlafLkyWrbtq0OHDig0aNH6+qrr9b69esVGRl5zvpWPoaSNG3aNB07dkx/+9vfKlzHasfQmf04uHKMLuS17Aq/Dx8jR47UK6+8Uuk6mzZtOu+HoazkQvZ57969mjVrlr744ovzPr/z51U6deqkJk2aqHfv3tq+fbtat2594YO7wJV9HD58uGNZYmKiwsLC9MADDyg9Pd2vL318Icdx3759uvHGGzVo0CDdd999lT7WH45jsEtJSdH69esr/TyEJHXv3l3du3d3/NyjRw+1b99e7777rl588UVPj+myvn37Ov53YmKikpKS1KJFC33xxRe69957fTiZZ3zwwQfq27ev4uLiKlzHasfQ3/l9+HjyyScrTaOS1KpVqyo9V2xs7Dmf1LWfAREbG1vhY87+cM3p06d19OjRCh9zsS5knydNmqQGDRrolltucXl7SUlJkkr+H7e3/mhdzHFNSkrS6dOntXPnTrVt2/ac+2NjY1VQUKBjx46VefcjOzvbY8esPK7u4/79+9WrVy/16NFD7733nsvb88VxPFvDhg1VrVq1c84squy/fWxsrEvr+4tHHnnE8QF0V/+fb40aNdSlSxdlZGR4aDr3qlu3ri699NIK57XqMZSkXbt26aeffnL5HUMrHUP7ccjOzlaTJk0cy7Ozs3X55ZeX+5gLeS275KI/NeKHzveB0+zsbMeyd99910RFRZlTp06V+1z2D5yuWLHCsWzWrFl+9YHT4uJik5CQYJ588skLevzChQuNJLNmzRo3T+YZH330kQkNDTVHjx4t9377B06//PJLx7LNmzf79QdO9+7da9q0aWPuuusuc/r06Qt6Dn85jt26dTOPPPKI4+eioiLTtGnTSj9w2r9//zLLunfv7rcfViwuLjYpKSkmLi7ObN269YKe4/Tp06Zt27bmiSeecPN0npGbm2vq1atn3njjjXLvt9oxdJaWlmZiY2NNYWGhS4/z52OoCj5wOmHCBMeynJycKn3g1JXXskszXvQz+JFdu3aZ1atXm9GjR5s6deqY1atXm9WrV5vc3FxjTMkvS8eOHc0NN9xgfv31VzNz5kzTqFEjk5qa6niOpUuXmrZt25q9e/c6lt14442mS5cuZunSpWbhwoWmTZs25u677/b6/lXkp59+MpLMpk2bzrlv7969pm3btmbp0qXGGGMyMjLMCy+8YFasWGEyMzPN9OnTTatWrcw111zj7bGrZNGiRea1114zv/76q9m+fbv56KOPTKNGjcxf//pXxzpn76Mxxjz44IOmefPm5ueffzYrVqww3bt3N927d/fFLpzX3r17zSWXXGJ69+5t9u7daw4cOOC4Oa9jleP42WefmfDwcDN58mSzceNGc//995u6des6zjL7y1/+YkaOHOlY/5dffjHVq1c3EyZMMJs2bTJpaWmmRo0aZt26db7ahUo99NBDJjo62sybN6/MsTpx4oRjnbP3cfTo0WbWrFlm+/btZuXKleauu+4yERERZsOGDb7YhfN68sknzbx580xmZqb55ZdfTHJysmnYsKE5ePCgMcb6x9CuqKjING/e3Dz99NPn3Ge1Y5ibm+v4myfJvPrqq2b16tVm165dxhhjxo4da+rWrWumT59u1q5dawYMGGASEhLMyZMnHc9x/fXXm7feesvx8/leyxcjoMLHkCFDjKRzbnPnznWss3PnTtO3b19Ts2ZN07BhQ/Pkk0+WSbxz5841kkxmZqZj2ZEjR8zdd99t6tSpY6KioszQoUMdgcYf3H333aZHjx7l3peZmVnmv8Hu3bvNNddcY+rXr2/Cw8PNJZdcYkaMGGFycnK8OHHVrVy50iQlJZno6GgTERFh2rdvb8aMGVPmnaqz99EYY06ePGkefvhhU69ePVOrVi1z6623lvlj7k8mTZpU7u+t8xuTVjuOb731lmnevLkJCwsz3bp1M0uWLHHcd+2115ohQ4aUWf+LL74wl156qQkLCzMdOnQw33//vZcnrrqKjtWkSZMc65y9j8OGDXP894iJiTE33XSTWbVqlfeHr6I777zTNGnSxISFhZmmTZuaO++802RkZDjut/oxtJs1a5aRZLZs2XLOfVY7hva/XWff7PtQXFxsnnvuORMTE2PCw8NN7969z9nvFi1amLS0tDLLKnstX4wQY4y5+PIGAACgaoLqOh8AAMD3CB8AAMCrCB8AAMCrCB8AAMCrCB8AAMCrCB8AAMCrCB8AAMCrCB8AAMCrCB8AAMCrCB8AAMCrCB8AAMCrCB8AAMCr/j9elUtCmoqoVAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "def relu(x):\n",
    "    return np.maximum(0,x)\n",
    "def plot_relu():\n",
    "    x=np.arange(-10,10,0.1)\n",
    "    y=relu(x)\n",
    "    plt.plot(x,y)\n",
    "    plt.show()\n",
    "if __name__==\"__main__\":\n",
    "    plot_relu()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "822acb53-6118-4543-9a36-53b0bc6bf057",
   "metadata": {},
   "source": [
    "### 3.2.5　Leakly ReLU激活函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "efb2d28a-510c-44c6-a9e9-c6586196eef3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "def leakly_relu(x):\n",
    "    return np.array([i if i>0 else 0.01*i for i in x])\n",
    "def lea_relu_diff(x):\n",
    "    return np.where(x>0,1,0.01)\n",
    "x=np.arange(-10,10,step=0.01)\n",
    "y_sigma=leakly_relu(x)\n",
    "y_sigma_diff=lea_relu_diff(x)\n",
    "axes=plt.subplot(111)\n",
    "axes.plot(x,y_sigma,label=\"leakly_relu\")\n",
    "axes.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e27e17c2-2a9d-46c1-a916-e46e53928179",
   "metadata": {},
   "source": [
    "### 3.2.6　其他类型的激活函数"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e0beed9f-3776-44ce-9196-4cebb2d70b86",
   "metadata": {},
   "source": [
    "## 3.3　损失函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "af71013c-e09d-43c4-a47a-c396014ceb58",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
